/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ia_psr.problemas;

import ia_psr.graph.Arista;
import ia_psr.graph.Nodo;
import ia_psr.graph.GrafoRestricciones;
import ia_psr.graph.NodoPSR;

/**
 *
 * @author Rubén Avalos Elvira y Fabiana Celiberti Tapie
 */
public abstract class Problema implements IProblema, IConjunto {

    public int comprobar(GrafoRestricciones g) {
        for (Nodo n : g.getNodos()) {
            NodoPSR n_psm = (NodoPSR)n;
            if (n_psm.valor.getValue() == null)
                return SIN_TERMINAR;

            for (Arista a : n_psm.getAristas()) {
                NodoPSR nDestino = (NodoPSR)a.destino;
                if (  nDestino.valor.getValue() == null )
                    return SIN_TERMINAR;

                if (n_psm.valor.equals(nDestino.valor))
                    return NO_VALIDO;
            }
        }
        return VALIDO;
    }

}
